#ifndef HAVE_TEXT2XML_TOKEN_H
#define HAVE_TEXT2XML_TOKEN_H

#include "../types/Vector.h"

#ifdef __cplusplus
extern "C" {
#endif
  typedef struct _Token Token;

  struct _Token {
    char*   type;
    Vector* matches;
  };

  /**
   * Returns a new token.
   */
  Token* token_new(const char* type, Vector* matches);

  /**
   * Destroys the token.
   */
  void token_free(Token* token);

  /**
   * Returns 1 if the given tokens are equal, 0 otherwise.
   */
  short int token_compare(Token* token1, Token* token2);
#ifdef __cplusplus
}
#endif                          /* __cplusplus */
#endif                          /* HAVE_TEXT2XML_TOKEN_H */
